#ifndef _CAT_STATE_H_
#define _CAT_STATE_H_

#include "cocos2d.h"
#include "Cats/CatsManager.h"
#include "Map/GameMap.h"
using namespace cocos2d;

class BaseCat;
class Character;


class CatState
{

protected:

	BaseCat* _pCatRef;
	bool _stateIsPaused;
	Character* _pCharRef;
	GameMap* _pGameMapRef;
	CatsManager* _pCatsManagerRef;

	//to be overridden
	virtual void runOnEnter(){};
	virtual void onResume();


public:
	CatState(BaseCat* pCatRef);
	virtual ~CatState();

	void onEnter(); //do not override
	virtual void update(float timeDiff){};
	virtual void onExit();
	virtual void onPause();
};


#endif
